import store from '../../store/index.js'
// 页面白名单，不受拦截
const whiteList = [
  '/subpkg/education_detail/education_detail',
  '/subpkg/sms_login/sms_login'
]

// 是否需要登陆
function hasPermission(url) {
  // 在白名单中或有登录判断条件可以直接跳转
  const flag = store.state.m_user.isLogin == 1 && store.state.m_user.token && store.state.m_user.token.length > 0;
  if ((whiteList.indexOf(url) !== -1) || flag) {
    return true
  }
  return false
}

// 设置RedirectInfo
function setRedirectInfo(url) {
  const data = {
    from: url,
    openType: 'redirectTo'
  };
  // 记录要跳转的页面
  store.commit('m_user/updateRedirectInfo', data);
}

// 对普通页面的拦截
uni.addInterceptor('navigateTo', {
  // 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
  invoke(e) {
    let url = e.url.split('?')[0]
    // console.log(url);
    if (!hasPermission(url)) {
      setRedirectInfo(url);
      uni.redirectTo({
        url: '/pages/login/login'
      })
      return false
    }
    return true
  },
  success(e) {}
})